<?php


namespace XiaoGuai\DataStructure\Stack;


interface StackInterface
{
    /**
     * 栈的初始化
     * StackInterface constructor.
     */
    public function __construct();

    /**
     * 向栈中压入元素
     * @param $element
     * @return bool
     */
    public function push($element): bool;

    /**
     * 从栈中弹出元素
     * @return mixed
     */
    public function pop();

    /**
     * 返回当前栈顶元素
     * @return mixed
     */
    public function top();

    /**
     * 栈是否为空
     * @return bool
     */
    public function isEmpty(): bool;

    /**
     * 栈当前存储的元素个数
     * @return int
     */
    public function length(): int;
}